//
//  AliyunVodPlayerView.h
//  AliyunVodPlayerViewSDK
//
//  Created by SMY on 16/9/8.
//  Copyright © 2016年 SMY. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "AliyunVodPlayerViewDefine.h"
#import <AliyunVodPlayerSDK/AliyunVodPlayerDefine.h>
/*
 当视频返回的时候的消息响应代理，此处可以进行一些销毁操作
 */
@protocol AliyunVodPlayerViewDelegate <NSObject>
- (void)onBackViewClick;
@end

/*
 AliyunVodPlayerView为带皮肤界面的播放器，可以直接作为View来使用
 */
@interface AliyunVodPlayerView : UIView

/*
 功能：设置AliyunVodPlayerViewDelegate代理
 */
@property (nonatomic, weak) id<AliyunVodPlayerViewDelegate> delegate;

/*
 功能：初始化窗口大小
 参数：frame:视图view大小
 备注：默认皮肤为蓝色
 */
- (instancetype)initWithFrame:(CGRect)frame;

/*
 功能：初始化窗口大小，并且设置播放器窗口皮肤
 参数：
    frame:视图view大小
    skin: 皮肤样式，类型有：
        AliyunVodPlayerViewSkinBlue,
        AliyunVodPlayerViewSkinRed,
        AliyunVodPlayerViewSkinOrange,
        AliyunVodPlayerViewSkinGreen
 */
- (instancetype)initWithFrame:(CGRect)frame andSkin:(AliyunVodPlayerViewSkin)skin;

/*
 功能：设置用户的AK，ApiKey,playAuth,userMethod
 参数：
 acessKeyID：用户AK ID
 accessKeySecret：用户AK Secret
 apiKey:API key，在控制台获取得到
 
 playAuth : 用户利用自己的acessKeyID accessKeySecret apiKey 来生成安全签名playauth
 userMethod : AliyunVodPlayerUserMethodPlayauth 利用playAuth签名来播放，playAuth必填项。
              AliyunVodPlayerUserMethodVidAndAK 使用acessKeyID accessKeySecret apiKey 及 vid 来直接播放视频,playAuth参数 不需要填写。
 
 备注：必须要设置，否则无法进行播放，具体获取方式请参考文档，这几个值必须要进行必要保护，否则会被泄露，建议把这几个值存放到你的服务器上，然后动态更新
 */
- (void)initAccessKeyAndApiKey:(NSString *)acessKeyID andAppSecret:(NSString *)accessKeySecret andApiKey:(NSString*)apiKey playAuth : (NSString *)playAuth playUserMethod : (AliyunVodPlayerUserMethod)userMethod;

/*
 功能：设置是否自动播放
 参数：
    autoPlay：YES为自动播放
 */
- (void)setAutoPlay:(BOOL)autoPlay;

/*
 功能：播放器初始化视频，主要目的是分析视频内容，读取视频头信息，解析视频流中的视频和音频信息，并根据视频和音频信息去寻找解码器，创建播放线程等
 参数：vid,输入视频的video id
 备注：如果设置成AutoPlay，则调用此函数会进行自动播放，否则需要调用start进行播放
 */
- (void)playWithVid:(NSString *)vid;

/*
 功能：开始播放视频
 备注：在prepareWithVid之后可以调用start进行播放。
 */
- (void)start;

/*
 功能：停止播放视频
 */
- (void)stop;

/*
 功能：释放播放器
 */
- (void)releasePlayer;

/*
 功能：播放器播放状态
 状态有以下
 AliyunVodPlayerViewStateIdle,          无播放空闲状态
 AliyunVodPlayerViewStateError,         播放错误状态
 AliyunVodPlayerViewStatePreparing,     正在播放准备状态
 AliyunVodPlayerViewStatePrepared,      播放准备完成状态
 AliyunVodPlayerViewStatePlay,          正在播放状态
 AliyunVodPlayerViewStatePause,         播放暂停状态
 AliyunVodPlayerViewStateStop,          播放停止状态
 AliyunVodPlayerViewStateLoading        正在加载状态
 */
- (AliyunVodPlayerViewState)playerViewState;


/*
 功能：获取此播放器版本号
 */
- (NSString*) getSDKVersion;

@end
